package com.ftg.learn.chapter05;

/**
 * 练习
 *
 * @author lijiaxin
 * @version 1.0
 * @date 2023/7/12 8:17
 */

public class Test1 {
    public static void q1(){
//        二维数组求和
//        公司年销售额求和
//        某公司按照季度和月份统计的数据如下：单位(万元)
//        第一季度：22,66,44
//        第二季度：77,33,88
//        第三季度：25,45,65
//        第四季度：11,66,99
        int[][] arr = {{22,66,44},{77,33,88},{25,45,65},{11,66,99}};
        int sum=0;
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                sum+=arr[i][j];
            }
        }
        System.out.println(sum);
    }

    public static void q2(){
//        冒泡排序
        int[] arr = {8,3,5,9,4,6,33};
        int temp=0;
        //循环次数
        for (int i = 0; i < arr.length-1; i++) {
            for (int j = 0; j < arr.length-1-i; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    public static void q3(){
//        给定一个整型数组，数组成员10个,求该数组中第二大的数的下标
        int[] arr = {0,3,5,9,4,6,33,5,44,66};
        //    最大数
        int max=arr[0];
        int maxindex=0;
//            第二大数
        int second=0;
        int secondindex=0;
        for (int i = 0; i < arr.length ; i++) {
            if(arr[i]>max){
                second=max;
                secondindex=maxindex;
                max=arr[i];
                maxindex=i;
            }else {
                if(arr[i]>second){
                    second=arr[i];
                    secondindex=i;
                }
            }
        }
        System.out.println(secondindex);
    }

    public static void q4(int x){
//        某个公司采用公用电话传递数据信息，数据是小于8位的整数，为了确保安全，
//        在传递过程中需要加密，加密规则如
//        下：首先将数据倒序，然后将每位数字都加上5，再用和除以10的余数代替该数字，
//        最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数，
//        然后，把加密后的结果在控制台打印出来。
//        题目要求：A:数据是小于8位的整数
//                定义一个int类型的数据
//        int number = 123456
//        B:加密规则
//        a:首先将数据倒序
//        结果 654321
//        b:然后将每位数字都加上5，再用和除以10的余数代替该数字
//        结果 109876
//        c:最后将第一位和最后一位数字交换
//        结果 609871
//        C:把加密后的结果输出在控制台
//        int[] number = {1,2,3,4,5,6};
            if(x<9||x>Math.pow(10,7)){
                throw new RuntimeException("对不起不是8位");
            }
            String xstr=String.valueOf(x);
            StringBuilder stringBuilder=new StringBuilder(xstr);
            String strnew=stringBuilder.reverse().toString();
            StringBuilder restr=new StringBuilder();
        for (int i = 0; i < strnew.length(); i++) {
            int temp = Integer.valueOf(strnew.substring(i,i+1));
            restr.append((temp + 5) % 10);
        }
        restr.append(restr.charAt(0));
        restr.delete(0,1);
        restr.insert(0,restr.charAt(restr.length()-2));
        restr.delete(restr.length()-2,restr.length()-1);
        System.out.println(restr);
    }

    public static void main(String[] args) {
//        q1();
//        q2();
//        q3();
        q4(345629);
    }
}
